$(function () {
    $("#emp_grid").datagrid({
        /*自适应*/
        fit: true,
        /*向此地址发送请求获得数据填充表格*/
        url: '/employee/query.do',
        columns: [/*此处为第一层列标题*/[
            {field: "username", title: "用户名", width: 100},
            {field: "realname", title: "真实姓名", width: 100},
            {field: "email", title: "邮箱", width: 100},
            /*此处sortable设置为true,则证明该项列允许排序,会出现一个排序按钮*/
            {field: "hireDate", title: "入职时间", width: 100, sortable: true},
            /*用formatter有就去显示,没有就算了*/
            {
                field: "dept", title: "部门", width: 100, formatter: function (value) {
                return value ? value.name : ""
            }
            },
            /*如果要显示同一个对象中的多个属性,field不能相同,那就不适用value,直接用row取出来*/
            {field: "tel", title: "电话", width: 100},
            {
                field: "admin", title: "管理员", width: 100, formatter: function (value) {
                return value ? "是" : "否"
            }
            },
            {
                field: "state", title: "状态", width: 100, formatter: function (value) {
                return value ? "<p>在职</p>" : "<p style='color: red'>离职</p>"
            }
            },
        ]/*此处可以插入第二层标题*/],
        //为表格顶端的按键
        toolbar: "#tb",
        //真正的自动展开收缩列的大小,以适应网格的宽度,防水平滚动
        fitColumns: true,
        //可在行底显示分页工具栏
        pagination: true,
        //行码
        rownumbers: true,
        //只允许单选某行
        singleSelect: true,
        //允许排序的列默认发送的参数
        sortName: 'hireDate',
        //允许排序的列默认发送的排序规则
        sortOrder: 'desc',
        //点击一行时出发的事件,其具有两个参数index,row;index为被选中的行的索引从零开始,row为被选中的行
        onClickRow: function (index, row) {
            if (row.state) {
                $("#changeState_btn").linkbutton({
                    text: '<font color="red">离职</font>'
                })
            } else {
                $("#changeState_btn").linkbutton({
                    text: '<font color="#7fff00">在职</font>'
                })
            }
        }

    })
    //对弹窗进行初始化
    $("#emp_dialog").dialog({
        width:320,
        height:420,
        resizable:true,
        //
        buttons:'#form_btn',
        closed:true,
        onClose:function () {
            $("#emp_form").form('clear');
        }
    })
    $("#resetpassword_dialog").dialog({
        width:420,
        height:200,
        resizable:true,
        //
        buttons:'#passform_btn',
        closed:true,
        title:"密码重置",
        onClose:function () {
            $("#emp_form").form('clear');
        }
    })

})
function add() {
    //显示密码框
    $("#password_tr").show();

    $("#emp_dialog").dialog('setTitle','新增员工');
    $("#emp_dialog").dialog('open');
}

function edit() {
    var row = $("#emp_grid").datagrid("getSelected");
    if (!row) {
        $.messager.alert("温馨提示", "请选中一条数据", "warning");
        return;
    }
    // /隐藏密码框和密码校验框
    $("#password_tr").hide();

    //回显表单,因为在row中现实的是dept.name所以只能用该方法进行部门id的辉县用于下拉列表
    if (row.dept) {
        row["dept.id"] = row.dept.id;
    }

    $.get('/employee/getRoleIdByEmployeeId.do',{employeeId:row.id},function (data) {
        //回显角色
        $("#role_combobox").combobox('setValues',data);
    })
    $("#emp_form").form('load', row);

    //打开弹窗
    $("#emp_dialog").dialog('setTitle', '编辑员工');
    $("#emp_dialog").dialog('open');
}

function changeState() {
    var row = $("#emp_grid").datagrid('getSelected');
    if (!row) {
        $.messager.alert('温馨提示', '请选中一条数据', 'warning');
        return;
    }
    console.log(row.realname);
    $.messager.confirm('确认对话框', '您确认要执行操作吗?', function (ro) {
        if (ro) {
            $.post('/employee/changeState.do', {id:row.id}, function (data) {
                if (data.success) {
                    $.messager.alert('温馨提示', '您的操作已经成功','info', function () {
                        $("#emp_grid").datagrid('reload');
                    })
                } else {
                    $.messager.alert('温馨提示', data.msg, 'warning');
                }
            })
        }
    })
}

function reload() {
    $("#emp_grid").datagrid('reload');
}

function query() {
    var keyword = $("[name=keyword]").val();
    var deptId = $("[name=deptId]").val();
    $("#emp_grid").datagrid('load', {
        keyword: keyword,
        deptId:deptId
    })
}

//表单中的按键
function save() {
    $("#emp_form").form('submit', {
        url: '/employee/saveOrUpdate.do',
        onSubmit:function(param){
            //获取角色下拉框里面选中的值
            var ids = $("#role_combobox").combobox('getValues');
            for(var i=0;i<ids.length;i++){
                //提交额外的参数
                param['roles['+i+'].id'] = ids[i];
            }
        },
        success: function (data) {
            data = $.parseJSON(data);
            if (data.success) {
                $.messager.alert('温馨提示', '保存成功！', 'info', function () {
                    cancel();
                    $("#emp_grid").datagrid('reload');
                });
            } else {
                $.messager.alert('温馨提示', data.msg, 'warning');
            }
        }
    })
}
function savepass() {
    $("#reset_form").form('submit', {
        url: "/employee/rsetPassword.do",
        success: function (data) {
            var data = $.parseJSON(data);
            if (data.success) {
                $.messager.alert('温馨提示', '保存成功', 'info', function () {
                    cancel();
                    $("#emp_grid").datagrid('reload');
                })
            } else {
                $.messager.alert('温馨提示', data.msg, 'warning');
            }
        }
    })
}

function cancel() {
    $("#emp_dialog").dialog('close');
}
function cancelpass() {
    $("#resetpassword_dialog").dialog('close');
}

function resetpassword(){
    var row = $("#emp_grid").datagrid("getSelected");
    if (!row) {
        $.messager.alert("温馨提示", "请选中一条数据", "warning");
        return;
    }
    $("#reset_form").form('load', row);
    $("#resetpassword_dialog").dialog("open")
}
function exportXls() {
    window.location.href="/employee/exportXls.do";
}
